home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-12-13 | 29.9 KB | 1,082 lines |
- Prereq: patch.0
- *** ../mh-6.7-dist/./Patchlevel Thu Apr 12 13:31:00 1990
- --- ./Patchlevel Fri Dec 14 09:17:57 1990
- ***************
- *** 1 ****
- ! MH.6.7 patch.0
- --- 1 ----
- ! MH.6.7 patch.1
- *** ../mh-6.7-dist/./uip/replsbr.c Thu Apr 12 13:29:36 1990
- --- ./uip/replsbr.c Mon Nov 5 11:38:46 1990
- ***************
- *** 1,6 ****
- /* replsbr.c - routines to help repl along... */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: replsbr.c,v 1.6 90/04/05 14:59:43 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* replsbr.c - routines to help repl along... */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: replsbr.c,v 1.9 90/11/05 11:38:43 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 85,91 ****
- char *cp;
- int format_len;
- register char **ap;
- - struct comp **used_buf_fp;
-
- (void) umask( ~ m_gmprot() );
- if ((out = fopen (drft, "w")) == NULL)
- --- 85,90 ----
- ***************
- *** 94,113 ****
- cp = new_fs (form ? form : replcomps, NULLCP, NULLCP);
- format_len = strlen (cp);
- ncomps = fmt_compile (cp, &fmt) + 1;
- ! nxtbuf = compbuffers = (char **)calloc((unsigned)ncomps,sizeof(char *));
- ! if (nxtbuf == NULL)
- adios (NULLCP, "unable to allocate component buffers");
- ! used_buf_fp = used_buf =
- ! (struct comp **)calloc((unsigned)(ncomps+1),sizeof(struct comp *));
- ! if (used_buf == NULL)
- adios (NULLCP, "unable to allocate component buffer stack");
- ! used_buf += ncomps+1; *--used_buf = 0;
- for (i = ncomps; i--; )
- if ((*nxtbuf++ = malloc( SBUFSIZ )) == NULL)
- adios (NULLCP, "unable to allocate component buffer");
-
- ! nxtbuf = compbuffers;
- ! savecomp = used_buf;
- tmpbuf = *nxtbuf++;
-
- for (ap = addrcomps; *ap; ap++) {
- --- 93,113 ----
- cp = new_fs (form ? form : replcomps, NULLCP, NULLCP);
- format_len = strlen (cp);
- ncomps = fmt_compile (cp, &fmt) + 1;
- ! if ((nxtbuf = compbuffers = (char **)
- ! calloc((unsigned)ncomps,sizeof(char *)))
- ! == (char **)NULL)
- adios (NULLCP, "unable to allocate component buffers");
- ! if ((savecomp = used_buf = (struct comp **)
- ! calloc((unsigned)(ncomps+1),sizeof(struct comp *)))
- ! == (struct comp **)NULL)
- adios (NULLCP, "unable to allocate component buffer stack");
- ! savecomp += ncomps + 1;
- ! *--savecomp = (struct comp *)0; /* point at zero'd end minus 1 */
- for (i = ncomps; i--; )
- if ((*nxtbuf++ = malloc( SBUFSIZ )) == NULL)
- adios (NULLCP, "unable to allocate component buffer");
-
- ! nxtbuf = compbuffers; /* point at start */
- tmpbuf = *nxtbuf++;
-
- for (ap = addrcomps; *ap; ap++) {
- ***************
- *** 232,243 ****
-
- /* return dynamically allocated buffers */
- free (scanl);
- ! while ( cptr = *savecomp++ )
- ! free (cptr->c_text);
- ! for (nxtbuf = compbuffers, i = ncomps; i--; )
- ! free (*nxtbuf++);
- free ((char *) compbuffers);
- ! free ((char *) used_buf_fp);
- }
-
- /* */
- --- 232,244 ----
-
- /* return dynamically allocated buffers */
- free (scanl);
- ! for (nxtbuf = compbuffers, i = ncomps;
- ! cptr = *savecomp++; nxtbuf++, i--)
- ! free (cptr->c_text); /* if not nxtbuf, nxtbuf already freed */
- ! while ( i-- > 0)
- ! free (*nxtbuf++); /* free unused nxtbufs */
- free ((char *) compbuffers);
- ! free ((char *) used_buf);
- }
-
- /* */
- *** ../mh-6.7-dist/./uip/rcvdist.c Thu Apr 12 13:29:36 1990
- --- ./uip/rcvdist.c Mon Nov 5 13:50:16 1990
- ***************
- *** 1,6 ****
- /* rcvdist.c - a rcvmail program to distribute messages */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rcvdist.c,v 1.4 90/04/05 14:59:35 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* rcvdist.c - a rcvmail program to distribute messages */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rcvdist.c,v 1.6 90/11/05 13:50:14 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 175,181 ****
- char *cp,
- *scanl,
- name[NAMESZ];
- - struct comp **used_buf_fp;
- register struct comp *cptr,
- **savecomp;
- FILE *out;
- --- 175,180 ----
- ***************
- *** 186,208 ****
- cp = new_fs (form ? form : rcvdistcomps, NULLCP, NULLCP);
- format_len = strlen (cp);
- ncomps = fmt_compile (cp, &fmt) + 1;
- ! nxtbuf = compbuffers = (char **) calloc ((unsigned) ncomps,
- ! sizeof (char *));
- ! if (nxtbuf == NULL)
- adios (NULLCP, "unable to allocate component buffers");
- ! used_buf = (struct comp **) calloc ((unsigned) (ncomps + 1),
- ! sizeof (struct comp *));
- ! if (used_buf == NULL)
- adios (NULLCP, "unable to allocate component buffer stack");
- ! used_buf_fp = used_buf;
- ! used_buf += ncomps + 1;
- ! *--used_buf = 0;
- for (i = ncomps; i--;)
- if ((*nxtbuf++ = malloc (SBUFSIZ)) == NULL)
- adios (NULLCP, "unable to allocate component buffer");
- -
- nxtbuf = compbuffers;
- - savecomp = used_buf;
- tmpbuf = *nxtbuf++;
-
- for (ap = addrcomps; *ap; ap++) {
- --- 185,205 ----
- cp = new_fs (form ? form : rcvdistcomps, NULLCP, NULLCP);
- format_len = strlen (cp);
- ncomps = fmt_compile (cp, &fmt) + 1;
- ! if ((nxtbuf = compbuffers = (char **)
- ! calloc ((unsigned) ncomps, sizeof (char *)))
- ! == (char **)NULL)
- adios (NULLCP, "unable to allocate component buffers");
- ! if ((savecomp = used_buf = (struct comp **)
- ! calloc ((unsigned) (ncomps + 1), sizeof (struct comp *)))
- ! == (struct comp **) NULL)
- adios (NULLCP, "unable to allocate component buffer stack");
- ! savecomp += ncomps + 1;
- ! *--savecomp = 0;
- !
- for (i = ncomps; i--;)
- if ((*nxtbuf++ = malloc (SBUFSIZ)) == NULL)
- adios (NULLCP, "unable to allocate component buffer");
- nxtbuf = compbuffers;
- tmpbuf = *nxtbuf++;
-
- for (ap = addrcomps; *ap; ap++) {
- ***************
- *** 277,288 ****
- (void) fclose (out);
-
- free (scanl);
- ! while (cptr = *savecomp++)
- free (cptr -> c_text);
- ! for (nxtbuf = compbuffers, i = ncomps; i--; )
- free (*nxtbuf++);
- free ((char *) compbuffers);
- ! free ((char *) used_buf_fp);
- }
-
- /* */
- --- 274,285 ----
- (void) fclose (out);
-
- free (scanl);
- ! for (nxtbuf = compbuffers, i = ncomps; cptr = *savecomp++; nxtbuf++, i--)
- free (cptr -> c_text);
- ! while (i-- > 0)
- free (*nxtbuf++);
- free ((char *) compbuffers);
- ! free ((char *) used_buf);
- }
-
- /* */
- *** ../mh-6.7-dist/./uip/rmf.c Thu Apr 12 13:29:37 1990
- --- ./uip/rmf.c Mon Nov 5 12:22:06 1990
- ***************
- *** 1,6 ****
- /* rmf.c - remove a folder */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rmf.c,v 2.2 90/04/05 14:57:11 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* rmf.c - remove a folder */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rmf.c,v 2.3 90/11/05 12:22:03 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 13,19 ****
- #define INTRSW 0
- "interactive", 0,
- #define NINTRSW 1
- ! "nointerative", 0,
-
- #define HELPSW 2
- "help", 4,
- --- 13,19 ----
- #define INTRSW 0
- "interactive", 0,
- #define NINTRSW 1
- ! "nointeractive", 0,
-
- #define HELPSW 2
- "help", 4,
- *** ../mh-6.7-dist/./uip/rcvtty.c Thu Apr 12 13:29:36 1990
- --- ./uip/rcvtty.c Mon Nov 5 13:06:03 1990
- ***************
- *** 1,6 ****
- /* rcvtty.c - a rcvmail program (a lot like rcvalert) handling IPC ttys */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rcvtty.c,v 1.5 90/04/05 15:02:11 sources Exp $";
- #endif lint
-
- #ifndef BSD42
- --- 1,6 ----
- /* rcvtty.c - a rcvmail program (a lot like rcvalert) handling IPC ttys */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: rcvtty.c,v 1.6 90/11/05 13:05:54 mh Exp $";
- #endif lint
-
- #ifndef BSD42
- ***************
- *** 18,24 ****
-
- /* */
- #define SCANFMT \
- ! "%2(hour{dtimenow}):%02(min{dtimenow}): %5(size) %<{encrypted}E%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- %{subject}%<{body}<<%{body}>>%>"
-
- --- 18,24 ----
-
- /* */
- #define SCANFMT \
- ! "%2(hour{dtimenow}):%02(min{dtimenow}): %<(size)%5(size) %>%<{encrypted}E%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- %{subject}%<{body}<<%{body}>>%>"
-
- *** ../mh-6.7-dist/./uip/dropsbr.c Thu Apr 12 13:29:27 1990
- --- ./uip/dropsbr.c Mon Nov 5 13:26:59 1990
- ***************
- *** 1,6 ****
- /* dropsbr.c - write to a mailbox */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: dropsbr.c,v 1.11 90/04/05 15:01:09 sources Exp $";
- #endif lint
-
- #include <stdio.h>
- --- 1,6 ----
- /* dropsbr.c - write to a mailbox */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: dropsbr.c,v 1.12 90/11/05 13:26:50 mh Exp $";
- #endif lint
-
- #include <stdio.h>
- ***************
- *** 408,413 ****
- --- 408,418 ----
- if (*cp++ == '\n')
- size++;
- }
- + if (write (md, "\n", 1) != 1) {
- + (void) fclose (fp);
- + return NOTOK;
- + }
- + if (mapping) size += 2;
-
- (void) fclose (fp);
- (void) lseek (fd, 0L, 2);
- *** ../mh-6.7-dist/./support/pop/popser.c Thu Apr 12 13:29:23 1990
- --- ./support/pop/popser.c Fri Nov 16 16:06:38 1990
- ***************
- *** 1,6 ****
- /* popser.c - the POP service */
- #ifndef lint
- ! static char ident[]="@(#)$Id: popser.c,v 1.13 90/04/09 09:45:18 sources Exp Locker: sources $";
- #endif
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* popser.c - the POP service */
- #ifndef lint
- ! static char ident[]="@(#)$Id: popser.c,v 1.16 90/11/16 14:56:38 mh Exp $";
- #endif
-
- #include "../h/mh.h"
- ***************
- *** 40,48 ****
- --- 40,54 ----
- extern char myhost[];
- extern char *myname;
-
- + #ifndef POP2
- static enum state {
- auth1, auth2, trans, update, halt, error
- } mystate;
- + #else
- + static enum state {
- + auth1, auth2, trans, mbox, item, ack, update, halt, error
- + } mystate;
- + #endif
-
-
- static int user (), pass ();
- ***************
- *** 59,64 ****
- --- 65,73 ----
- int xtnd ();
- #endif BPOP
- static int quit ();
- + #ifdef POP2
- + static int helo (), rdp2 (), acks (), ack2 (), fold (), nack ();
- + #endif POP2
-
- static struct vector {
- char *v_cmd;
- ***************
- *** 87,95 ****
- #ifdef BPOP
- "xtnd", 1, 2, xtnd, trans, trans, trans,
- #endif BPOP
- -
- "quit", 0, 0, quit, trans, halt, halt,
-
- NULL
- };
-
- --- 96,121 ----
- #ifdef BPOP
- "xtnd", 1, 2, xtnd, trans, trans, trans,
- #endif BPOP
- "quit", 0, 0, quit, trans, halt, halt,
-
- + #ifdef POP2
- + "helo", 2, 2, helo, auth1, mbox, auth1,
- +
- + "fold", 1, 1, fold, mbox, mbox, mbox,
- + "quit", 0, 0, quit, mbox, halt, halt,
- + "read", 0, 1, rdp2, mbox, item, error,
- +
- + "fold", 1, 1, fold, item, mbox, mbox,
- + "read", 0, 1, rdp2, item, item, error,
- + "quit", 0, 0, quit, item, halt, halt,
- + "retr", 0, 0, retrieve, item, ack, error,
- +
- + "acks", 0, 0, ack2, ack, item, error,
- + "ackd", 0, 0, ack2, ack, item, error,
- + "nack", 0, 0, rdp2, ack, item, error,
- + "quit", 0, 0, NULL, ack, halt, halt,
- +
- + #endif POP2
- NULL
- };
-
- ***************
- *** 97,102 ****
- --- 123,131 ----
-
- /* */
-
- + #ifdef POP2
- + static int pop2 = NOTOK; /* current pop2 msg, or NOTOK if pop3 */
- + #endif POP2
- #ifdef DPOP
- static int pop_uid;
- static int pop_gid;
- ***************
- *** 166,174 ****
- --- 195,209 ----
- long lseek ();
- char *crypt ();
-
- + #ifdef POPUUMBOX
- + #define MBX_READ pmbx_read
- static int pmbx_read ();
- static char *p_copy(), *p_copyin(), *p_nextword();
- static p_cmatch(), p_isdate(), p_ishead(), p_parse(), any();
- + #else
- + #define MBX_READ mbx_read
- + extern int mbx_read ();
- + #endif
-
- static int setup(), setupaux(), read_map(), read_file(), pmbx_size();
- static int quitaux(), quitfile(), respond(), getline();
- ***************
- *** 311,316 ****
- --- 346,360 ----
- }
-
- /* */
- + #ifdef POP2
- + static int helo (vec) /* sort of "user" and "pass" */
- + register char **vec;
- + {
- + pop2 = 0; /* now we're talkin' pop2! */
- + make_lower (username, vec[1]); /* helo user pass */
- + return pass (++vec); /* user pass */
- + }
- + #endif
-
- static int user (vec)
- register char **vec;
- ***************
- *** 565,573 ****
- if (setupaux (guest) == NOTOK)
- return NOTOK;
-
- return respond (OK,
- nmsgs ? "maildrop has %d message%s (%d octets)" : "maildrop empty",
- ! nmsgs, nmsgs != 1 ? "s" : NULL, Msgs[0].m_size);
- }
-
- /* */
- --- 609,625 ----
- if (setupaux (guest) == NOTOK)
- return NOTOK;
-
- + #ifdef POP2
- + if (pop2 != NOTOK) { /* in response to pop2 "helo" */
- + pop2 = nmsgs > 0 ? 1 : 0;
- + return respond ('#', "%d message%s (%d octets)",
- + nmsgs, nmsgs != 1 ? "s" : "", Msgs[0].m_size);
- + }
- + else
- + #endif POP2
- return respond (OK,
- nmsgs ? "maildrop has %d message%s (%d octets)" : "maildrop empty",
- ! nmsgs, nmsgs != 1 ? "s" : "", Msgs[0].m_size);
- }
-
- /* */
- ***************
- *** 682,688 ****
- padvise (NULLCP, LOG_DEBUG, "read_file (%ld, %d)",
- pos, msgp);
-
- ! if ((i = pmbx_read (dp, pos, &rp, debug)) <= 0)
- return (msgp - 1);
-
- m_gMsgs ((msgp - 1) + i);
- --- 734,740 ----
- padvise (NULLCP, LOG_DEBUG, "read_file (%ld, %d)",
- pos, msgp);
-
- ! if ((i = MBX_READ (dp, pos, &rp, debug)) <= 0)
- return (msgp - 1);
-
- m_gMsgs ((msgp - 1) + i);
- ***************
- *** 753,758 ****
- --- 805,884 ----
- }
-
-
- + #ifdef POP2
- + static int rdp2 (vec) /* always returns OK */
- + char **vec;
- + {
- + if (vec[1]) {
- + if ((pop2 = atoi (vec[1])) <= 0)
- + pop2 = 0;
- + }
- + else if (pop2 == 0)
- + return NOTOK; /* close 'em down */
- +
- + if (pop2 <= 0 || pop2 > nmsgs) {
- + pop2 = 0;
- + return respond ('=', "0 no message");
- + }
- + if (Msgs[pop2].m_flags & MDELE) {
- + pop2 = 0;
- + return respond ('=', "0 message %d is deleted", pop2);
- + }
- +
- + return respond ('=', "%d (message %d)", Msgs[pop2].m_size, pop2);
- + }
- +
- + static int ack2 (vec)
- + char **vec;
- + {
- + if (strcmp (vec[0], "ackd") == 0) {
- + Msgs[pop2].m_flags |= MDELE; /* ignored later if MREAD */
- + Msgs[0].m_size -= Msgs[pop2].m_size;
- + dmsgs++;
- + }
- +
- + if (pop2) { /* a current msg */
- + rmsgs++; /* mark this one as read */
- + if (++pop2 > nmsgs)
- + pop2 = -1; /* let rdp2 reset */
- + else if (Msgs[pop2].m_flags & MDELE)
- + pop2 = -1; /* let rdp2 reset */
- + if (pop2 > Msgs[0].m_last)
- + Msgs[0].m_last = pop2;
- + }
- + return rdp2 (vec); /* vec = { "acks", 0 } */
- + }
- +
- + static int fold (vec)
- + register char **vec;
- + {
- + pop2 = 0;
- +
- + #ifdef notdef
- +
- + /* This might work, or it might be a huge security hole. For my purpose,
- + * it doesn't need to work, so I'm not going to make sure it's OK.
- + * 16Nov90/JLR
- + */
- +
- + if (quitaux (NULLVP) == NOTOK)
- + return respond ('#', "0 unable to close folder");
- +
- + (void) sprintf (maildrop, vec[1]);
- + if (setupaux (access (maildrop, 2) ? 1 : 0) == NOTOK)
- + return respond ('#', "0 unable to read %s", maildrop);
- +
- + pop2 = nmsgs > 0 ? 1 : 0;
- + return respond ('#', "%d message%s in %s (%d octets)",
- + nmsgs, nmsgs != 1 ? "s" : "", maildrop, Msgs[0].m_size);
- +
- + #endif
- +
- + respond ('#', "0 unable to change folders");
- + return NOTOK;
- + }
- + #endif POP2
- +
- static int list (vec)
- register char **vec;
- {
- ***************
- *** 773,779 ****
- }
-
- (void) respond (OK, "%d message%s (%d octets)",
- ! nmsgs - dmsgs, nmsgs - dmsgs != 1 ? "s" : NULL,
- Msgs[0].m_size);
- for (i = 1; i <= nmsgs; i++)
- if (!(Msgs[i].m_flags & MDELE))
- --- 899,905 ----
- }
-
- (void) respond (OK, "%d message%s (%d octets)",
- ! nmsgs - dmsgs, nmsgs - dmsgs != 1 ? "s" : "",
- Msgs[0].m_size);
- for (i = 1; i <= nmsgs; i++)
- if (!(Msgs[i].m_flags & MDELE))
- ***************
- *** 798,803 ****
- --- 924,934 ----
- register char *cp;
- char buffer[BUFSIZ];
-
- + #ifdef POP2
- + if (pop2 == 0)
- + return NOTOK;
- + else if (pop2 == NOTOK) {
- + #endif
- if ((i = atoi (vec[1])) <= 0 || i > nmsgs)
- return respond (NOTOK, "no such message: \"%s\"", vec[1]);
- if (Msgs[i].m_flags & MDELE)
- ***************
- *** 804,809 ****
- --- 935,945 ----
- return respond (NOTOK, "message %d is deleted", i);
-
- (void) respond (OK, "%d octets", Msgs[i].m_size);
- + #ifdef POP2
- + }
- + else /* if called by pop2, vec = { "retr", 0 } */
- + i = pop2;
- + #endif
-
- for ((void) fseek (dp, pos = Msgs[i].m_start, 0);
- fgets (buffer, sizeof buffer, dp) != NULL && pos < Msgs[i].m_stop;
- ***************
- *** 812,817 ****
- --- 948,956 ----
- *cp = NULL;
- multiline ("%s", buffer);
- }
- + #ifdef POP2
- + if (pop2 == NOTOK) { /* then multiend */
- + #endif
- multiend ();
-
- if (i > Msgs[0].m_last) {
- ***************
- *** 818,823 ****
- --- 957,965 ----
- Msgs[0].m_last = i;
- rmsgs++;
- }
- + #ifdef POP2
- + }
- + #endif
-
- return OK;
- }
- ***************
- *** 1147,1153 ****
- return respond (OK,
- n ? "%s signing off (%d message%s, %d octets left)"
- : "%s signing off (maildrop empty)",
- ! server, n - d, n - d != 1 ? "s" : NULL, Msgs[0].m_size);
- }
-
-
- --- 1289,1295 ----
- return respond (OK,
- n ? "%s signing off (%d message%s, %d octets left)"
- : "%s signing off (maildrop empty)",
- ! server, n - d, n - d != 1 ? "s" : "", Msgs[0].m_size);
- }
-
-
- ***************
- *** 1314,1323 ****
- char buffer[BUFSIZ];
-
- bp = buffer;
- ! bp += strlen (sprintf (bp, "%s%s", code == OK ? "+OK" : "-ERR",
- ! fmt ? " " : NULL));
- ! if (fmt)
- ! bp += strlen (sprintf (bp, fmt, a, b, c, d));
- putline (buffer, output);
-
- return code;
- --- 1456,1482 ----
- char buffer[BUFSIZ];
-
- bp = buffer;
- ! #ifndef POP2
- ! (void) sprintf (bp, "%s%s", code == OK ? "+OK" : "-ERR", fmt ? " " : "");
- ! bp += strlen (bp);
- ! #else
- ! switch (code) {
- ! case OK:
- ! case NOTOK:
- ! (void) sprintf (bp, "%s%s", code == OK ? "+OK" : "-ERR",
- ! fmt ? " " : "");
- ! bp += strlen (bp);
- ! break;
- !
- ! default: /* only happens in pop2 */
- ! *bp++ = code;
- ! code = OK;
- ! }
- ! #endif
- ! if (fmt) {
- ! (void) sprintf (bp, fmt, a, b, c, d);
- ! bp += strlen (bp);
- ! }
- putline (buffer, output);
-
- return code;
- ***************
- *** 1457,1464 ****
- --- 1616,1638 ----
- * INET: steved@longs.LANCE.ColoState.Edu, dempsey@handel.CS.ColoState.Edu
- * boulder!ccncsu!longs.LANCE.ColoState.Edu!steved, ...!ncar!handel!dempsey
- */
- + /* From: Jim Reid <jim@computer-science.strathclyde.ac.UK>
- + *
- + * MH-6.7 does not support MMDF-style mailboxes with POP as claimed. It
- + * appears that when code was added to popser.c to support UNIX-style
- + * mailboxes, the old behaviour was lost. i.e. The new popd worked with
- + * UNIX-style mailboxes, but not MMDF ones. Users would get "format error"
- + * error messages if they tried to inc a remote MMDF-style mailbox because
- + * the pop daemon didn't want to know or like the MMDF message delimiters.
- + */
-
- + /* So... Now there's an incredible hack in mhconfig.c to define POPUUMBOX
- + * in support/pop/Makefile if we're using Sendmail. This causes this
- + * UUCP-mbox reading code to be used here. Ugh. 05Nov90/JLR
- + */
- +
- /* */
- + #ifdef POPUUMBOX
- /* from dropsbr.c - read from a mailbox - pop server version */
-
- /* ALMOST IDENTICAL to mbx_read */
- ***************
- *** 1863,1865 ****
- --- 2037,2040 ----
- return(1);
- return(0);
- }
- + #endif
- *** ../mh-6.7-dist/./sbr/m_sync.c Thu Apr 12 13:29:03 1990
- --- ./sbr/m_sync.c Mon Nov 5 11:47:29 1990
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* m_sync.c - synchronize message sequences */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: m_sync.c,v 1.6 90/11/05 11:46:34 mh Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <stdio.h>
- ***************
- *** 60,67 ****
- continue;
- if (fp == NULL) {
- if ((fp = fopen (seq, "w")) == NULL
- ! && unlink (seq) != NOTOK
- ! && (fp = fopen (seq, "w")) == NULL) {
- admonish (attr, "unable to write");
- goto priv;
- }
- --- 63,70 ----
- continue;
- if (fp == NULL) {
- if ((fp = fopen (seq, "w")) == NULL
- ! && (unlink (seq) == NOTOK ||
- ! (fp = fopen (seq, "w")) == NULL)) {
- admonish (attr, "unable to write");
- goto priv;
- }
- *** ../mh-6.7-dist/./sbr/addrsbr.c Thu Apr 12 13:28:50 1990
- --- ./sbr/addrsbr.c Mon Nov 5 12:26:57 1990
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* addrsbr.c - parse addresses 822-style */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: addrsbr.c,v 1.7 90/11/05 12:26:41 mh Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include "../h/addrsbr.h"
- ***************
- *** 830,835 ****
- --- 833,840 ----
- }
- #else not BERK
- for (mp = &mq; mp = mp -> m_next;) {
- + if (np -> m_mbox == NULL)
- + continue;
- if ((len = strlen (cp = np -> m_mbox))
- < (i = strlen (pp = mp -> m_mbox)))
- continue;
- ***************
- *** 854,859 ****
- --- 859,866 ----
-
- if (mp -> m_nohost)
- return 1;
- + if (np -> m_host == NULL)
- + continue;
- if ((len = strlen (cp = np -> m_host))
- < (i = strlen (pp = mp -> m_host)))
- continue;
- *** ../mh-6.7-dist/./sbr/m_getfld.c Thu Apr 12 13:29:01 1990
- --- ./sbr/m_getfld.c Wed Apr 18 13:48:20 1990
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* m_getfld.c - read/parse a message */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: m_getfld.c,v 1.8 90/04/18 13:48:12 sources Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <stdio.h>
- ***************
- *** 542,550 ****
- --- 545,557 ----
- */
- return 1;
-
- + #ifdef notdef
- (void) fseek (iob, (long)(pos-1), 0);
- if (iob->_cnt <= 0)
- _filbuf(iob);
- + #else
- + (void) fseek (iob, pos, 0);
- + #endif /* !notdef */
- return 0;
- }
-
- *** ../mh-6.7-dist/./conf/mhconfig.c Thu Apr 12 13:27:24 1990
- --- ./conf/mhconfig.c Mon Nov 5 16:24:58 1990
- ***************
- *** 1,7 ****
- /* mhconfig.c - configure MH */
- /* cc [-DSYS5] mhconfig.c -o mhconfig */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mhconfig.c,v 2.23 90/04/08 10:57:33 sources Exp $";
- #endif lint
-
- #include <ctype.h>
- --- 1,7 ----
- /* mhconfig.c - configure MH */
- /* cc [-DSYS5] mhconfig.c -o mhconfig */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mhconfig.c,v 2.26 90/11/05 16:24:55 mh Exp $";
- #endif lint
-
- #include <ctype.h>
- ***************
- *** 420,425 ****
- --- 420,428 ----
- fprintf (fp, "/^@BEGIN: SENDMTSHACK$/,/^@END: SENDMTSHACK$/d\n");
- break;
- }
- + /* special hack for support/pop/popser.c */
- + fprintf (fp, "s%%@(POPUUMBOX)%%%s%%g\n",
- + mtsnum == sendmail ? "-DPOPUUMBOX" : "");
-
- if (bsd43) /* for sgid(tty)-rcvtty */
- fprintf (fp, "/^@BEGIN: BSD43$/d\n/^@END: BSD43$/d\n");
- *** ../mh-6.7-dist/./conf/mh-gen.8 Thu Apr 12 13:27:24 1990
- --- ./conf/mh-gen.8 Wed Nov 21 09:58:36 1990
- ***************
- *** 1,2 ****
- ! .\" @(#)$Id: mh-gen.8,v 2.48 90/04/09 13:27:27 sources Exp $
- .\" uneven inter-word spacing (nroff line adjusting) hampers readability
- --- 1,2 ----
- ! .\" @(#)$Id: mh-gen.8,v 2.50 90/11/21 09:27:52 mh Exp Locker: mh $
- .\" uneven inter-word spacing (nroff line adjusting) hampers readability
- ***************
- *** 224,225 ****
- --- 224,226 ----
- or, \*(lqmh\*(rq to have \fIMH\fR as the transport system.
- +
- On UNIX systems supporting TCP/IP networking via sockets
- ***************
- *** 229,234 ****
- \fISendMail\fR.
- ! The \*(lq/smtp\*(rq suffix is described in detail in the \fIAdministrator's
- ! Guide\fR.
- ! Hence,
- ! for TCP/IP UNIX systems,
- the \*(lq/smtp\*(rq suffix to either \*(lqsendmail\*(rq or \*(lqmmdf2\*(rq is
- --- 230,232 ----
- \fISendMail\fR.
- ! Hence, for TCP/IP UNIX systems,
- the \*(lq/smtp\*(rq suffix to either \*(lqsendmail\*(rq or \*(lqmmdf2\*(rq is
- ***************
- *** 235,236 ****
- --- 233,237 ----
- the preferred MTS configuration.
- + The \*(lq/smtp\*(rq suffix is described in detail in the \fIAdministrator's
- + Guide\fR; be sure to set \*(lqservers:\*(rq as described in
- + \fImh\-tailor\fR\0(8) if you use this option.
-
- ***************
- *** 246,248 ****
- If \*(lqpop\*(rq (formerly \*(lqpopbboards:\ on\*(rq),
- ! include support for the UCI BBoards facility via the POP service;
- this setting requires \*(lqpop:\ on\*(rq.
- --- 247,249 ----
- If \*(lqpop\*(rq (formerly \*(lqpopbboards:\ on\*(rq),
- ! include support for the UCI BBoards facility via the POP3 service;
- this setting requires \*(lqpop:\ on\*(rq.
- ***************
- *** 261,263 ****
- To read remote BBoards,
- ! the usual configuration would have \fIbbc\fR talk to a \fIPOP\fR or
- \fINNTP\fR server.
- --- 262,264 ----
- To read remote BBoards,
- ! the usual configuration would have \fIbbc\fR talk to a \fIPOP3\fR or
- \fINNTP\fR server.
- ***************
- *** 290,294 ****
- you intend to use POP.)
- ! If POP is enabled, there are two additional options which are of interest:
- ! \*(lqRPOP\*(rq and \*(lqDPOP\*(rq.
- ! The former indicates that support for the UNIX variant of POP,
- RPOP, which uses privileged sockets for authentication be enabled.
- --- 291,295 ----
- you intend to use POP.)
- ! If POP is enabled, there are three additional options which are of interest:
- ! \*(lqRPOP\*(rq, \*(lqDPOP\*(rq and \*(lqPOP2\*(rq.
- ! The first indicates that support for the UNIX variant of POP,
- RPOP, which uses privileged sockets for authentication be enabled.
- ***************
- *** 298,300 ****
- and instead have their own separate database (another major win).
- ! Both of these options can be enabled via an \*(lqoptions\*(rq directive in the
- \fIMH\fR configuration file.
- --- 299,304 ----
- and instead have their own separate database (another major win).
- ! The \*(lqPOP2\*(rq option indicates that the \fIMH\fP POP daemon should
- ! speak the older POP2 protocol in addition to the \fIMH\fP POP3 protocol \-
- ! a major win.
- ! All of these options can be enabled via an \*(lqoptions\*(rq directive in the
- \fIMH\fR configuration file.
- ***************
- *** 500,501 ****
- --- 504,516 ----
- .ti -.5i
- + POP2
- + .br
- + Have the POP daemon understand the older
- + POP2 protocol as well as the \fIMH\fP POP3 protocol \- a major win.
- + The POP daemon auto-magically
- + determines which POP protocol your client is using.
- + If you're enabling POP service,
- + there's no reason not to enable this option as well.
- + See also \fIPOPSERVICE\fR.
- +
- + .ti -.5i
- POPSERVICE
- ***************
- *** 503,507 ****
- The port name the \fIMH\fP POP will use. For historical reasons,
- ! this defaults to \*(lqpop\*(rq. The \fIMH\fP POP protocol
- ! (POP version 3) has finally been assigned its own port number (110),
- ! which differs from the original POP (version 1) port number (109).
- To have \fIMH\fP POP use the new assigned port number,
- --- 518,524 ----
- The port name the \fIMH\fP POP will use. For historical reasons,
- ! this defaults to \*(lqpop\*(rq.
- ! In 1987, the \fIMH\fP POP protocol
- ! (POP version 3) was published as RFC1081 and
- ! was assigned its own port number (110),
- ! which differs from the original POP (version 1 and 2) port number (109).
- To have \fIMH\fP POP use the new assigned port number,
- ***************
- *** 510,511 ****
- --- 527,530 ----
- and server hosts as \*(lq110/tcp\*(rq.
- + If you enable \fIPOP2\fP, you can safely leave this undefined unless
- + you are using POP3 clients besides \fIMH\fP.
-
- *** ../mh-6.7-dist/./conf/makefiles/mtsM Thu Apr 12 13:27:21 1990
- --- ./conf/makefiles/mtsM Mon Nov 5 12:08:17 1990
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: mtsM,v 2.2 90/04/05 15:17:58 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: mtsM,v 2.3 90/04/18 13:47:30 sources Exp $
- ##############################################################################
- ***************
- *** 51,53 ****
-
- ! clean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
-
- --- 51,54 ----
-
- ! clean:; -rm -f $(LIB) $(LLIB)
- ! for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
-
- *** ../mh-6.7-dist/./conf/makefiles/support/pop Thu Apr 12 13:27:22 1990
- --- ./conf/makefiles/support/pop Mon Nov 5 16:06:05 1990
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: pop,v 2.5 90/04/05 15:16:16 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: pop,v 2.7 90/11/05 16:06:03 mh Exp $
- ##############################################################################
- ***************
- *** 11,13 ****
- LIBDIR = $(DESTDIR)@(MHETCPATH)
- ! OPTIONS = @(MHOPTIONS) -I..
- LDOPTIONS= @(LDOPTIONS)
- --- 11,13 ----
- LIBDIR = $(DESTDIR)@(MHETCPATH)
- ! OPTIONS = @(MHOPTIONS) @(POPUUMBOX) -I..
- LDOPTIONS= @(LDOPTIONS)
- *** ../mh-6.7-dist/./conf/examples/uci Thu Apr 12 13:27:15 1990
- --- ./conf/examples/uci Mon Apr 16 15:49:23 1990
- ***************
- *** 24,26 ****
- ranlib on
- ! sharedlib on
- slibdir /usr/local/lib
- --- 24,26 ----
- ranlib on
- ! sharedlib off
- slibdir /usr/local/lib
- *** ../mh-6.7-dist/./conf/doc/mh-mts.rf Thu Apr 12 13:27:09 1990
- --- ./conf/doc/mh-mts.rf Wed Nov 21 10:09:34 1990
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-mts.rf,v 1.6 90/04/05 15:08:37 sources Exp $
- .SC MH\-MTS 8
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-mts.rf,v 1.7 90/11/21 10:09:32 mh Exp $
- .SC MH\-MTS 8
- ***************
- *** 55,56 ****
- --- 55,58 ----
- this approach can be tolerant of faults.
- + Be sure to set \*(lqservers:\*(rq as described in
- + mh\-tailor(8) if you use this option.
-
- *** ../mh-6.7-dist/./conf/config/mts.c Thu Apr 12 13:27:04 1990
- --- ./conf/config/mts.c Mon Nov 5 12:06:51 1990
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* mts.c - definitions for the mail transport system */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: mts.c,v 2.6 90/11/05 12:06:39 mh Exp $";
- + #endif lint
-
- /* LINTLIBRARY */
-
- ***************
- *** 485,498 ****
- continue;
- *cp = NULL;
- }
- - /*
- - * If the fullname contains any .'s, quote it
- - */
- - if (index(fullname, '.')) {
- - char tmp[BUFSIZ];
- - sprintf (tmp, "\"%s\"", fullname);
- - strcpy (fullname, tmp);
- - }
- if (MMailids == 0 || *np == NULL) {
- (void) strcpy (username, pw -> pw_name);
- fullname[0] = NULL;
- --- 488,493 ----
- ***************
- *** 499,504 ****
- --- 494,504 ----
- }
- if ((cp = getenv ("SIGNATURE")) && *cp)
- (void) strcpy (fullname, cp);
- + if (index(fullname, '.')) { /* quote any .'s */
- + char tmp[BUFSIZ];
- + sprintf (tmp, "\"%s\"", fullname);
- + strcpy (fullname, tmp);
- + }
-
- return username;
- }
-